Matthias Clasen [Sat, 31 Oct 2015 22:13:29 +0000 (18:13 -0400)]
Load settings.ini from all data dirs
An error in the loading function was making us load the file from
the first data dir repeatedly, instead.
https://bugzilla.gnome.org/show_bug.cgi?id=757377
Paolo Borelli [Thu, 29 Oct 2015 16:20:54 +0000 (17:20 +0100)]
win32: handle WM_DISPLAYCHANGE globally
Instead of handling WM_DISPLAYCHANGE on every GdkWindow, only handle
it on an ad-hoc hidden window we create when opening the display.
This has two reasons:
1) we want emit the display::size-changed signal even if there are no
gtk windows currently open
2) we want to emit the signal just once and not once for every window
https://bugzilla.gnome.org/show_bug.cgi?id=757324
Matthias Clasen [Sat, 31 Oct 2015 04:08:00 +0000 (00:08 -0400)]
model button: Propagate state
Propagate the state to the CSS node for the indicator.
Matthias Clasen [Sat, 31 Oct 2015 04:07:19 +0000 (00:07 -0400)]
inspector: Show CSS node state
This is useful when debugging state propagation issues between
CSS nodes.
Matthias Clasen [Sat, 31 Oct 2015 03:49:44 +0000 (23:49 -0400)]
HighContrast: adjust message dialog styling
Matthias Clasen [Sat, 31 Oct 2015 03:49:17 +0000 (23:49 -0400)]
adwaita: Adjust message dialog styling
Matthias Clasen [Sat, 31 Oct 2015 03:48:46 +0000 (23:48 -0400)]
message dialog: Use an element name
Matthias Clasen [Sat, 31 Oct 2015 02:16:18 +0000 (22:16 -0400)]
color editor: Redo the non-activatable color swatch
Use a .activatable style class on the color swatch and tie the
hover effect to it. The color editor simply removes this class
now to get an inert color swatch.
This is more flexible and lets us avoid referring to the
GtkColorEditor type in the theme.
Matthias Clasen [Sat, 31 Oct 2015 01:46:36 +0000 (21:46 -0400)]
HighContrast: Adapt to color swatch changes
This needs more work and simplification.
Matthias Clasen [Sat, 31 Oct 2015 01:44:19 +0000 (21:44 -0400)]
Adwaita: Adapt to color swatch changes
This needs more work and simplification.
Matthias Clasen [Sat, 31 Oct 2015 01:43:50 +0000 (21:43 -0400)]
swatch fixup
Matthias Clasen [Sat, 31 Oct 2015 01:29:46 +0000 (21:29 -0400)]
color swatch: Convert to CSS nodes
Convert GtkColorSwatch to use the two elements colorswatch and
image.
Matthias Clasen [Sat, 31 Oct 2015 01:00:01 +0000 (21:00 -0400)]
text view: Add css node docs
Matthias Clasen [Fri, 30 Oct 2015 23:58:11 +0000 (19:58 -0400)]
HighContrast: Update textview styling
Some updates to make text appear as usual.
Matthias Clasen [Fri, 30 Oct 2015 23:55:42 +0000 (19:55 -0400)]
Adwaita: Update textview styling
Some updates to make text appear as usual. The border windows
probably need some more work.
Matthias Clasen [Fri, 30 Oct 2015 23:49:02 +0000 (19:49 -0400)]
text view: Convert to CSS nodes
Use subnodes for the border windows, and add children to the right
subnodes.
Matthias Clasen [Fri, 30 Oct 2015 22:11:13 +0000 (18:11 -0400)]
text view: Set an element name
And it will be...drumroll...textview.
Matthias Clasen [Fri, 30 Oct 2015 21:44:36 +0000 (17:44 -0400)]
icon view: Add an element name
Not surprising anybody, I decided to call it iconview.
Matthias Clasen [Fri, 30 Oct 2015 21:38:04 +0000 (17:38 -0400)]
HighContrast: Adapt to changed treeview names
Matthias Clasen [Fri, 30 Oct 2015 21:37:32 +0000 (17:37 -0400)]
Adwaita: Adapt to changed treeview names
Matthias Clasen [Fri, 30 Oct 2015 21:25:43 +0000 (17:25 -0400)]
tree view: Rename and document element names
The names are now treeview and header.
Matthias Clasen [Fri, 30 Oct 2015 21:18:06 +0000 (17:18 -0400)]
HighContrast: Update font button styling
Use the new element name and style class.
Matthias Clasen [Fri, 30 Oct 2015 21:17:41 +0000 (17:17 -0400)]
Adwaita: Update font button styling
Use the new element name and style class.
Matthias Clasen [Fri, 30 Oct 2015 21:09:59 +0000 (17:09 -0400)]
font button: Add an element name
Give this GtkButton subclass element name button and style class .font.
Matthias Clasen [Fri, 30 Oct 2015 16:52:47 +0000 (12:52 -0400)]
HighContrast: Update paned styling
Adapt to the new element names.
Matthias Clasen [Fri, 30 Oct 2015 16:50:32 +0000 (12:50 -0400)]
Adwaita: Update paned styling
Adapt to the new element names in the previous commit.
This also adds back a selected state which gets used
for when the focus is placed on the separator with F8,
just so this functionality is not forgotten.
Matthias Clasen [Fri, 30 Oct 2015 16:44:24 +0000 (12:44 -0400)]
paned: Convert to CSS nodes
Add a subnode for the separator, and use it for drawing.
Piotr Drąg [Fri, 30 Oct 2015 18:52:41 +0000 (19:52 +0100)]
Updated POTFILES.in and POTFILES.skip
Matthias Clasen [Fri, 30 Oct 2015 18:51:41 +0000 (14:51 -0400)]
Update the generated css for the previous commit
Timm Bäder [Fri, 30 Oct 2015 14:08:18 +0000 (15:08 +0100)]
popover: Use element name
Pick "popover" and add .menu for popover menus
Georges Basile Stavracas Neto [Thu, 29 Oct 2015 12:14:57 +0000 (10:14 -0200)]
placesview: vertically align path labels
The current situation is somewhat sad, with the path
label totally misaligned throughout the rows.
This is fixed by using a size group for the path labels,
so they all have the same allocated size (with the max
of 15 chars). Also, instead of hiding the eject button,
set it child-invisible, so it is hidden and yet it's size
is allocated by GtkBox.
https://bugzilla.gnome.org/show_bug.cgi?id=757303
Lapo Calamandrei [Fri, 30 Oct 2015 12:17:52 +0000 (13:17 +0100)]
Adwaita: fix vertical switch styling
Lapo Calamandrei [Fri, 30 Oct 2015 11:53:44 +0000 (12:53 +0100)]
Adwaita: fix switch sizing
moving -GtkSwitch-slider-width and -GtkSwitch-slider-height from
the GtkSwitch selector to the * wildcard selector as other style
props.
Matthias Clasen [Fri, 30 Oct 2015 10:49:57 +0000 (06:49 -0400)]
inspector: Drop the style property list
Style properties are now shown for each CSS node in the
CSS node tab, so we don't need a separate per-widget tab
for this.
Matthias Clasen [Fri, 30 Oct 2015 10:37:27 +0000 (06:37 -0400)]
inspector: Drop the style classes list
Style classes can now be added/removed for each CSS node in
the CSS node tab, so we don't need a separate per-widget tab
for this.
Yosef Or Boczko [Fri, 30 Oct 2015 10:26:52 +0000 (12:26 +0200)]
Updated Hebrew translation
Matthias Clasen [Fri, 30 Oct 2015 05:21:13 +0000 (01:21 -0400)]
menu button: Revisit style class one more time
Use .popup, which is already in use elsewhere, fits better with
the other button differentiating style classes, and does not
interfere with menus.
Matthias Clasen [Fri, 30 Oct 2015 05:16:49 +0000 (01:16 -0400)]
HighContrast: Update color button styling
Adapt to the previous commit.
Matthias Clasen [Fri, 30 Oct 2015 05:16:26 +0000 (01:16 -0400)]
Adwaita: Update color button styling
Adapt to the previous commit.
Matthias Clasen [Fri, 30 Oct 2015 05:15:57 +0000 (01:15 -0400)]
color button: Add a style class
Add a .color style class to differentiate this button from the
normal ones.
Marek Černocký [Fri, 30 Oct 2015 06:12:33 +0000 (07:12 +0100)]
Updated Czech translation
Matthias Clasen [Fri, 30 Oct 2015 05:09:18 +0000 (01:09 -0400)]
HighContrast: Update headerbar styling
Adapt to the previous commit.
Matthias Clasen [Fri, 30 Oct 2015 05:08:30 +0000 (01:08 -0400)]
Adwaita: Update headerbar styling
Adapt to the previous commit.
Matthias Clasen [Fri, 30 Oct 2015 05:07:58 +0000 (01:07 -0400)]
headerbar: Use an element name instead of a style class
Use the element name headerbar.
Matthias Clasen [Fri, 30 Oct 2015 05:07:27 +0000 (01:07 -0400)]
Revisit menu button style
Change the style class to .menubutton, to avoid interference
from GtkMenu theming.
Matthias Clasen [Fri, 30 Oct 2015 04:54:37 +0000 (00:54 -0400)]
menu button: Add a style class
Add a .menu style class to differentiate menu buttons from normal
ones.
Matthias Clasen [Fri, 30 Oct 2015 04:51:13 +0000 (00:51 -0400)]
scale button: Add a style class
Add a .scale style class to differentiate scale buttons from normal
ones.
Matthias Clasen [Fri, 30 Oct 2015 04:50:48 +0000 (00:50 -0400)]
link button: Add a style class
Add a .link style class to differentiate link buttons from normal
buttons.
Matthias Clasen [Fri, 30 Oct 2015 04:38:43 +0000 (00:38 -0400)]
HighContrast: Updates for recent changes
This is bit of a grab-bag, it includes fixes for spin buttons,
entries, buttons.
Matthias Clasen [Fri, 30 Oct 2015 04:31:02 +0000 (00:31 -0400)]
Adwaita: Adapt to the button changes
The updates here cover the various button variants.
Matthias Clasen [Fri, 30 Oct 2015 04:29:47 +0000 (00:29 -0400)]
model button: Convert to CSS nodes
Follow the same approach as used for the toggle button family:
Keep the button element name for button-like rendering, and
use a distinct modelbutton name otherwise, and add a subnode
for the indicator with name check or radio.
Matthias Clasen [Fri, 30 Oct 2015 04:27:13 +0000 (00:27 -0400)]
toggle button: Convert to css nodes
Convert GtkToggleButton and its subclasses to CSS nodes.
Keep the button element name for when we want to render
these button-like (but with .toggle, .check and .radio
style classes for differentiation).
When we want to render them with an indicator, use distinct
element names checkbutton and radiobutton, and add a subnode
for the indicator with name check or radio.
Matthias Clasen [Fri, 30 Oct 2015 04:26:04 +0000 (00:26 -0400)]
lockbutton: Revisit element name
Instead of a separate element name, keep button, and just
add a .lock style class, to inherit the button theming.
Matthias Clasen [Fri, 30 Oct 2015 03:17:41 +0000 (23:17 -0400)]
Adwaita: button fixes
Matthias Clasen [Fri, 30 Oct 2015 03:04:47 +0000 (23:04 -0400)]
togglebutton: Add a style class
This lets us differentiate toggle buttons from plain buttons
with button.toggle, without having to redo all the styling.
Matthias Clasen [Fri, 30 Oct 2015 02:55:29 +0000 (22:55 -0400)]
button: Use an element name instead of a style class
Benjamin Otte [Fri, 30 Oct 2015 01:06:01 +0000 (02:06 +0100)]
widget: Queue redraw on gtk_widget_queue_allocate()
Mirror the behavior of gtk_widget_queue_resize() and always queue a
redraw. If we ever want to cause allocates without redraws we can add
gtk_widget_queue_allocate_no_redraw() then.
I had initially assumed gtk_widget_size_allocate() would take care of
queueing redraws, but it does not do that when neither size nor position
change. And that is obviously what's happening after
gtk_widget_queue_allocate().
Fixes buttons sometimes not redrawing (the record button in
widget-factory after locking it, all buttons when switching to the dark
theme).
Matthias Clasen [Thu, 29 Oct 2015 23:21:47 +0000 (19:21 -0400)]
Assistant: Fix page rmoval
We have to remove the page itself from the intermediate box
first, before removing the box from the notebook. Otherwise,
reffing the page to keep it alive is ineffective: the box
gets destroyed, and that destruction recurses over the page.
This fixes the problem in
https://bugzilla.gnome.org/show_bug.cgi?id=756385
Sébastien Granjoux [Mon, 26 Oct 2015 20:52:34 +0000 (21:52 +0100)]
Add a more complex widget in the flipping assistant
This reproduces the problem from bug
https://bugzilla.gnome.org/show_bug.cgi?id=756385
Florian Müllner [Thu, 29 Oct 2015 17:20:27 +0000 (18:20 +0100)]
Adwaita: Update double-border tweak for scrolled windows
Since commit
b6dbfc791f, GtkViewPort uses an element name.
Dominique Leuenberger [Thu, 29 Oct 2015 12:56:18 +0000 (13:56 +0100)]
placessidebar: do not crash if uris is NULL
On Drag'n'Drop actions across system boundaries (VM host to guest), the
happen to be null.
https://bugzilla.gnome.org/show_bug.cgi?id=757298
Benjamin Otte [Thu, 29 Oct 2015 15:03:15 +0000 (16:03 +0100)]
spinbutton: Don't set .entry
Also fix Adwaita to not use .entry anymore
Benjamin Otte [Thu, 29 Oct 2015 14:55:28 +0000 (15:55 +0100)]
searchentry: Fix includes
Matthias Clasen [Thu, 29 Oct 2015 11:47:31 +0000 (07:47 -0400)]
viewport: Add an element name to the css node
This lets us avoid hardcoding the type in CSS.
Matthias Clasen [Thu, 29 Oct 2015 11:43:30 +0000 (07:43 -0400)]
searchbar: Add an element name to the css node
This lets us avoid hardcoding the type in CSS.
Matthias Clasen [Thu, 29 Oct 2015 11:08:15 +0000 (07:08 -0400)]
actionbar: Add an element name to the css node
This lets us avoid hardcoding the type in CSS.
Matthias Clasen [Thu, 29 Oct 2015 11:01:57 +0000 (07:01 -0400)]
statusbar: Add an element name to the css node
This lets us avoid hardcoding the type in CSS.
Matthias Clasen [Thu, 29 Oct 2015 03:58:39 +0000 (23:58 -0400)]
search entry: Add a style class
There should be little need to have separate styling for search
entries, so a separate name would be a bit overkill.
Matthias Clasen [Thu, 29 Oct 2015 03:57:57 +0000 (23:57 -0400)]
lock button: Add an element name
Matthias Clasen [Thu, 29 Oct 2015 03:32:57 +0000 (23:32 -0400)]
entry, spinbutton: Finish css node conversion
This commit creates entry and button subnodes for the buttons
in GtkSpinButton. The nodes are ordered like this for horizontal
spinbutton
+ entry
+ image.left
+ image.right
+ progress
+ button.down
+ button.up
and like this for vertical ones:
spinbutton
+ button.down
+ entry
+ button.up
This arrangement requires cooperation from GtkEntry to place
the entry subnodes correctly, and some small changes in the theme.
This commit also fixes progress rendering in vertical spin buttons.
Matthias Clasen [Thu, 29 Oct 2015 01:55:07 +0000 (21:55 -0400)]
wip: spinbutton
Matthias Clasen [Wed, 28 Oct 2015 20:35:16 +0000 (16:35 -0400)]
spinbutton: Trivial cleanup
Use g_clear_object in a few places.
Benjamin Otte [Thu, 29 Oct 2015 00:03:09 +0000 (01:03 +0100)]
widget: Queue resize on parent on show/hide
When gtk_widget_show() or gtk_widget_hide() is called, don't queue a
resize on the widget itself but on the parent.
The widget itself may already be marked as in need of a resize and
the call would be optimized out and never reach the parent.
The parent size will change though because a child widget just changed
its visibility.
Fixes a bunch of issues with menus appearing black, toolbas not hiding
in widget-factory and also various reftests.
Benjamin Otte [Thu, 8 Oct 2015 11:41:50 +0000 (13:41 +0200)]
container: Don't keep our own variable trying to track need for resize
Insteaad, introduce gtk_widget_needs_allocate() and use that.
Benjamin Otte [Thu, 1 Oct 2015 20:38:31 +0000 (22:38 +0200)]
widget: Make invisible widgets not propagate resizes
Do not queue a resize on the parent if the widget is not visible.
Invisible widgets do not influence the parents size.
Benjamin Otte [Thu, 1 Oct 2015 20:36:34 +0000 (22:36 +0200)]
window: Don't queue resizes when inhibiting resizes
Since the frame clock, the inhibit happens on the GDK level, so this
code is no longer necessary.
Benjamin Otte [Tue, 29 Sep 2015 21:19:07 +0000 (23:19 +0200)]
widget: Make gtk_widget_queue_allocate() not resize
This commit toggles the big switch. We now don't run size_allocate()
from the toplevel up anymore in cases where we don't need to.
Things might be broken in subtle ways as a result of this commit. We'll
have to find them and fix them.
Benjamin Otte [Tue, 29 Sep 2015 19:04:07 +0000 (21:04 +0200)]
widget: Track if a child needs an allocation
This is not used so far.
Benjamin Otte [Mon, 28 Sep 2015 19:57:25 +0000 (21:57 +0200)]
widget: Refactor function
Turn it from a loop into tail-calling itself.
Benjamin Otte [Mon, 28 Sep 2015 19:54:23 +0000 (21:54 +0200)]
widget: Move resize function into gtkwidget.c
There's no sizegroup specific code left in it, but lots of
widget-specifics.
Benjamin Otte [Mon, 28 Sep 2015 19:17:21 +0000 (21:17 +0200)]
sizegroup: Merge function into only caller
Benjamin Otte [Mon, 28 Sep 2015 19:08:57 +0000 (21:08 +0200)]
sizegroup: Simplify widget's size group invalidation
Since we do not queue resizes twice anymore, we can just walk the list
of groups without deduplication.
Benjamin Otte [Mon, 28 Sep 2015 03:48:57 +0000 (05:48 +0200)]
sizegroup: Skip resizes on widgets that have resize queued
Widgets that already have a resize queued don't need to walk the whole
parent chain and queue another resize. It's enough to do it once per
resize.
This also means that sizegroups cannot use the shortcut of just
invalidating the first widget in the group anymore. That widget might
already have a resize queued while others don't.
Benjamin Otte [Mon, 28 Sep 2015 03:42:04 +0000 (05:42 +0200)]
widget: Warn on calls to queue_resize() during size_allocate()
This happens way too much, so it's disabled unless GTK_DEBUG=geometry is
on.
Also, we can't detect it in the call to queue_resize() yet, only during
size_allocate(), so the warning comes after the signal emission.
Benjamin Otte [Mon, 28 Sep 2015 03:23:32 +0000 (05:23 +0200)]
widget: Clear pending resizes after size_allocate()
This catches the cases where widgets call gtk_widget_queue_resize()
in their size_allocate() callback.
Benjamin Otte [Mon, 28 Sep 2015 03:21:06 +0000 (05:21 +0200)]
widget: Warn if size-unqueried widgets get allocated
Widgets should have gtk_widget_get_preferred_width/height() called
on them before gtk_widget_size_allocate() gets called.
Add a check for this.
Benjamin Otte [Mon, 28 Sep 2015 00:19:25 +0000 (02:19 +0200)]
widget: Add a resize_needed flag
... and API to set and unset it.
It is set when gtk_widget_queue_resize() is called.
It is unset when gtk_widget_get_preferred_width/height() is called.
So far it is not used.
Benjamin Otte [Sun, 27 Sep 2015 10:29:05 +0000 (12:29 +0200)]
widget: Add a function that does actual resize
It's just shuffling code around.
Benjamin Otte [Fri, 18 Sep 2015 02:04:21 +0000 (04:04 +0200)]
sizegroup: Merge function into only caller
Both functions were running the same loop. Just running the loop once
seems advantageous.
Benjamin Otte [Wed, 16 Sep 2015 20:56:56 +0000 (22:56 +0200)]
sizegroup: Don't invalidate over resize containers.
Before this commit, a widget tree like this:
Window
AnyContainer (part of SizeGroup1)
GtkClutterEmbed
SomeWidget
when calling gtk_widget_queue_resize(SomeWidget), would invalidate
SizeGroup1, when it should have stopped at the GtkClutterEmbed (which is
a RESIZE_IMMEDIATE child).
Benjamin Otte [Fri, 18 Sep 2015 01:49:09 +0000 (03:49 +0200)]
sizegroup: Refactor function
Get rid of continues in loop. This allows doing more complex things in
future commits.
Benjamin Otte [Fri, 18 Sep 2015 01:41:12 +0000 (03:41 +0200)]
sizegroup: Refactor function
Benjamin Otte [Tue, 15 Sep 2015 20:11:35 +0000 (22:11 +0200)]
sizegroup: Remove special case before loop
The loop actually does the right thing already. There's no need to
complicate things.
Benjamin Otte [Tue, 15 Sep 2015 20:10:26 +0000 (22:10 +0200)]
sizegroup: refactor
The code looks a lot less dangerous if it doesn't look like we're
casting a random widget to a container.
Benjamin Otte [Tue, 15 Sep 2015 20:08:55 +0000 (22:08 +0200)]
sizegroup: Fold function into only caller
Benjamin Otte [Tue, 15 Sep 2015 19:57:49 +0000 (21:57 +0200)]
sizegroup: Move container function into its only caller
Benjamin Otte [Wed, 16 Sep 2015 21:16:44 +0000 (23:16 +0200)]
widget: Use gtk_widget_queue_allocate() when clip changes
There's no need to queue a full resize there.
Benjamin Otte [Mon, 14 Sep 2015 15:56:05 +0000 (17:56 +0200)]
API: widget: Add gtk_widget_queue_allocate()
This is so widgets can queue a rerun of their allocation logic, but
without triggering resizes everywhere.
For now, it just calls gtk_widget_queue_resize().
Benjamin Otte [Mon, 28 Sep 2015 21:33:28 +0000 (23:33 +0200)]
container: Use correct allocation for calling size_allocate()
Benjamin Otte [Mon, 14 Sep 2015 04:11:36 +0000 (06:11 +0200)]
API: widget: Add gtk_widget_get_allocated_size()
See docs for what this is.